草庐IT

c++ - 实现安全的 nullptr

全部标签

c - 使用 Windows 套接字的 WriteFile 返回无效参数错误

我已经为Windows套接字苦苦挣扎了两天,无法像在Linux中那样只使用写入套接字。我想编写自己的shellcode,并且正在研究如何将stdout、stdin重定向到套接字句柄(这就是我的游戏来源)。我使用Windows7x64,必要时构建7601。这是我的代码#include#include#include#includeintmain(intargc,char**argv){//boringcodestartsif(argc");}WSADATAwsadata;intresult=WSAStartup(MAKEWORD(2,2),&wsadata);if(result!=NO_

c - 在使用 Windows 7/8.1 和 Windows 10 的 FormatMessage 中的 LocalFree/HeapFree 之前,我是否应该查询操作系统?

来自MSDN(格式消息函数):Windows10:LocalFreeisnotinthemodernSDK,soitcannotbeusedtofreetheresultbuffer.Instead,useHeapFree(GetProcessHeap(),allocatedMessage).Inthiscase,thisisthesameascallingLocalFreeonmemory.我不知道如何使用HeapFree,但我想在Windows7、Windows8/8.1和Windows10中运行该应用程序,但我目前只使用LocalFree,它正在运行。这是我的代码:VOIDSho

c++ - 如何在 Windows 上将 BYTE 数组映射为 FILE *

我发现了旧的、巨大的开源代码,它对存储在磁盘文件中的二进制数据执行一些计算,输出也保存为二进制文件。我想使用一种根方法,简化签名:intmagic(FILE*input,FILE*output);问题是我将输入数据存储在进程内存中,我希望输出也作为进程内存。代码太大,我无法在合理的时间内重写它。这个API迫使我在每次调用magic()时进行两次巨大的I/O。是否有可能在Windows上使用C/C++机制将BYTE数组映射为FILE*? 最佳答案 看来你需要fmemopen的功能:http://man7.org/linux/man-p

c - 是否有来自低级库(如 kernel32.dll 或 ntdll.dll)的 wsprintf() 类型函数?

我正在编写一个低级记录器函数,它将文本字符串附加到文本(日志)文件的末尾。要求是此函数不应调用来自DLL的任何WinAPI,这些DLL可能尚不可用于该进程——例如当它从DllMain调用时处理程序。换句话说,它不能使用除了保证加载到任何用户模式进程中的库之外的任何库,即kernel32.dll或ntdll.dll.我可以通过CreateFile、WriteFile、CloseHandle、HeapAlloc、HeapFree等均来自kernel32.dll。问题在于格式化输出字符串。例如,我需要添加一些额外的(自动生成的)详细信息,例如当前时间、进程ID、sessionID等。我通常会

c++ - Windows 套接字接收标志

我正在阅读来自msdn的套接字recv()文档,我不清楚这些标志的作用:intrecv(_In_SOCKETs,_Out_char*buf,_In_intlen,_In_intflags//these);我偷看了winsock2.h并找到一些标志的值,如:MSG_OOB和MSG_PEEK,但MSG_WAITALL未在此处定义。能否请您向我解释一下每个标志的作用以及它的值(int)是什么?编辑:看来我的问题并不清楚,但我确实阅读了关于标志的文档部分,但我仍然不理解每个标志的recv()行为,因此如果可能的话,我要求用一个例子来解释每个标志。 最佳答案

c - execvp 的阻塞版本 (windows)

这题与Non-blockingversionofsystem()正好相反我想用另一个进程替换当前进程(而不是创建另一个进程)。我想启动(例如)notepad,但是以阻塞方式(我不想在notepad关闭之前得到提示。在Windowsshell中我只是这样做cmd/cnotepad(notepad如果没有cmd/c前缀,则自动从提示中分离)在C中,使用system我只是这样做system("notepad");但这是在幕后fork。我想用记事本替换当前进程,并且我希望它是阻塞的。我试过:#include#includeintmain(intargc,char**argv){char*con

c - FTDI。需要了解有关 FT_Write() 函数的更多详细信息

关于FT_Write()的问题功能。FT_STATUSFT_Write(FT_HANDLEftHandle,LPVOIDlpBuffer,DWORDdwBytesToWrite,LPDWORDlpdwBytesWritten)我想知道lpdwBytesWritten.它什么时候回来*lpdwBytesWritten?会FT_Write返回FT_OK以外的其他在那种情况下?一次调用FT_Write可以发送多少数据??dwBytesToWrite有什么限制?参数?我一直没能找到这些问题的答案。已阅读FTDIKnowledgebase也在D2XXProgrammer'sGuide.

c - Windows SDK 7.1 提供/使用哪个 C 标准(是否有切换选项?)

我想使用WindowsSDK7.1在Matlabr2014b中编译一些C函数。现在我想知道编译器遵循哪个C标准?我之前在谷歌上的研究(没有研究手册)还没有得出结果。此外,我想知道是否可以更改使用的标准。 最佳答案 当我在WindowsSDK7.1命令提示符下运行命令cl.exe/?时,它报告版本号16.00.30319.01,根据接受的答案在thisquestion是VisualStudio2010附带的编译器版本。根据Wikipedia,Microsoft直到VisualStudio2012才开始添加对C99的支持,因此Windo

c++ - 如何调用 GetAltMonthNames 来填充外国语言环境月份字符串的安全数组?

我看到了这个函数,想知道如何调用它。我可能想编写一个组件并将此函数导出到COM客户端,因此我想填充一个安全的字符串数组(其他自动化类型也可以)。所以我想利用ATL智能类。这是我目前拥有的,一个控制台应用程序。#include"pch.h"#include//inpch.h...//#include"windows.h"//#include"comutil.h"//#include"atlbase.h"//#include//#include"atlsafe.h"intmain(){LCIDgermany(7);LPOLESTR*rgp;HRESULThr;hr=::GetAltMont

windows - 有没有办法检查 MS 安全中心的病毒防护状态?

我们在Windows环境中,希望为非公司机器自动执行此过程。如果供应商来到现场,我们希望能够让他/她访问一个可以对工作站进行快速扫描的网站,以确定他们是否有正确的MSKB补丁以及他们的病毒扫描数据是否符合要求日期。我可以相对轻松地扫描KB更新,我很难找到一种检查病毒数据状态的方法,而且由于那里有很多不同的引擎,使用(至少内置于XP中)专有的MS安全中心内容。最终,我们希望我们的路由器将非公司机器重定向到一个强制验证的网站,但在那之前,这将是一个手动过程。有什么想法吗? 最佳答案 在WindowsVista中,有一些新的API可以与安